package com.kehutong.repair.dto;

import com.kehutong.repair.enums.Channel;
import com.kehutong.repair.enums.OpionionUseType;
import org.coraframework.orm.Entity;
import org.coraframework.orm.annotation.Column;

import java.time.LocalDateTime;

public class Enterprise extends Entity {

    private static final long serialVersionUID = -6604192097329771369L;

    protected Enterprise(String id) {
        super(id);
    }

    @Column(comment="企业id")
    private String corpid;

    @Column(comment = "授权企业简称")
    private String corpName	;

    @Column(comment = "授权企业全称")
    private String corpFullName	;

    @Column(length=64, comment="联系人密约")
    private String contactSecret;

    @Column(length=64, comment="员工密约")
    private String employeeSecret;

    @Column(comment = "事件接收token[联系人、客户共用]")
    private String token;

    @Column(length = 64, comment = "事件接收EncodingAESKey[联系人、客户共用]")
    private String encodingAESKey;

    @Column(comment = "舆情开关 企业微信|个人微信")
    private Channel channel;

    @Column(comment="同步关键词状态")
    private boolean sysHotWord;

    @Column(comment = "已绑定小区数量")
    private int bindCommunityCount;

    @Column(comment = "可绑定小区数量")
    private int totalBindCommunityCount;

    @Column(comment = "催费分享编号")
    private String payShareNo;

    @Column(length = 64, comment="催费模板")
    private String templatePayNo;

    @Column(length = 64, comment="缴费成功通知模板")
    private String templatePayResultNo;

    @Column(length = 64, comment="工单模板")
    private String orderNo;

    @Column(length = 512, comment = "客户accessToken")
    private String contactAccessToken; // providerAccessToken 服务商的access_token

    @Column(comment = "客户accessToken")
    private LocalDateTime contactAccessTokenExpiredTime;

    @Column(length = 512, comment = "员工accessToken")
    private String employeeAccessToken; // accessToken 授权方（企业）access_token

    @Column(comment = "员工accessToken")
    private LocalDateTime employeeAccessTokenExpiredTime;

    @Column(comment = "舆情类型")
    private OpionionUseType opinionType;

    @Column(comment = "逻辑删除")
    private boolean deleted;

    @Column(length = 64,comment = "缴费回调地址")
    private String billPayCallBack ;

    @Column(length = 64,comment = "组织,小区,房屋,员工通用回调地址")
    private String commonCallBack ;

    public String getCorpid() {
        return corpid;
    }

    public void setCorpid(String corpid) {
        this.corpid = corpid;
    }

    public String getContactSecret() {
        return contactSecret;
    }

    public void setContactSecret(String contactSecret) {
        this.contactSecret = contactSecret;
    }

    public String getEmployeeSecret() {
        return employeeSecret;
    }

    public void setEmployeeSecret(String employeeSecret) {
        this.employeeSecret = employeeSecret;
    }

    public String getContactAccessToken() {
        return contactAccessToken;
    }

    public void setContactAccessToken(String contactAccessToken) {
        this.contactAccessToken = contactAccessToken;
    }

    public LocalDateTime getContactAccessTokenExpiredTime() {
        return contactAccessTokenExpiredTime;
    }

    public void setContactAccessTokenExpiredTime(LocalDateTime contactAccessTokenExpiredTime) {
        this.contactAccessTokenExpiredTime = contactAccessTokenExpiredTime;
    }

    public String getEmployeeAccessToken() {
        return employeeAccessToken;
    }

    public void setEmployeeAccessToken(String employeeAccessToken) {
        this.employeeAccessToken = employeeAccessToken;
    }

    public LocalDateTime getEmployeeAccessTokenExpiredTime() {
        return employeeAccessTokenExpiredTime;
    }

    public void setEmployeeAccessTokenExpiredTime(LocalDateTime employeeAccessTokenExpiredTime) {
        this.employeeAccessTokenExpiredTime = employeeAccessTokenExpiredTime;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getEncodingAESKey() {
        return encodingAESKey;
    }

    public void setEncodingAESKey(String encodingAESKey) {
        this.encodingAESKey = encodingAESKey;
    }

    public String getCorpName() {
        return corpName;
    }

    public void setCorpName(String corpName) {
        this.corpName = corpName;
    }

    public String getCorpFullName() {
        return corpFullName;
    }

    public void setCorpFullName(String corpFullName) {
        this.corpFullName = corpFullName;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    public Channel getChannel() {
        return channel;
    }

    public void setChannel(Channel channel) {
        this.channel = channel;
    }

    public boolean isSysHotWord() {
        return sysHotWord;
    }

    public void setSysHotWord(boolean sysHotWord) {
        this.sysHotWord = sysHotWord;
    }

    public int getBindCommunityCount() {
        return bindCommunityCount;
    }

    public void setBindCommunityCount(int bindCommunityCount) {
        this.bindCommunityCount = bindCommunityCount;
    }

    public int getTotalBindCommunityCount() {
        return totalBindCommunityCount;
    }

    public void setTotalBindCommunityCount(int totalBindCommunityCount) {
        this.totalBindCommunityCount = totalBindCommunityCount;
    }

    public String getPayShareNo() {
        return payShareNo;
    }

    public void setPayShareNo(String payShareNo) {
        this.payShareNo = payShareNo;
    }

    public String getTemplatePayNo() {
        return templatePayNo;
    }

    public void setTemplatePayNo(String templatePayNo) {
        this.templatePayNo = templatePayNo;
    }

    public String getTemplatePayResultNo() {
        return templatePayResultNo;
    }

    public void setTemplatePayResultNo(String templatePayResultNo) {
        this.templatePayResultNo = templatePayResultNo;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public OpionionUseType getOpinionType() {
        return opinionType;
    }

    public void setOpinionType(OpionionUseType opinionType) {
        this.opinionType = opinionType;
    }
    public String getBillPayCallBack() {
        return billPayCallBack;
    }

    public void setBillPayCallBack(String billPayCallBack) {
        this.billPayCallBack = billPayCallBack;
    }

    public String getCommonCallBack() {
        return commonCallBack;
    }

    public void setCommonCallBack(String commonCallBack) {
        this.commonCallBack = commonCallBack;
    }
}
